package com.flying.oop.classmember.inner;


/**
 * @ClassName:
 * @author: flying
 * @date 2024 2024/12/11 14:04
 * @Description: 测试局部内部类
 *
 * 局部内部类的特点：
 * 1. 定义在方法里
 * 2. 局部内部类只能使用默认的权限修饰符，不能使用 public /protected /private
 * 3. 局部内部类可以访问方法里的局部变量，也可以访问外部类的成员变量
 * 4. 有了局部内部类以后，作用域分成了4个
 *  外部类的成员变量  / 外部类方法里的成员变量  / 内部类的成员变量  /  内部类方法里的局部变量
 *  访问 外部类的成员变量  使用 ：   外部类名
 *
 *
 *
 */
public class LocalOuter {

    int y=2;
    int m=1;
    static int t=9999999;


    public  AInterface test(){
        int x=5;  // 局部变量：定义在方法内部的变量
        int zz = 8888888;
        class LocalInner implements AInterface {
            int m=3;

            public void demo(){
               int m=4;
//               x=2;   局部内部类访问外部类的局部变量不能修改

                System.out.println(y); //  2
                System.out.println(x); //  5
                System.out.println(t);
                System.out.println("访问内部类里的局部变量m=" + m);//
                System.out.println("访问没有同名的外部类的局部变量zz=" + zz);
                System.out.println("访问内部类里的成员变量m=" + this.m);
                System.out.println("访问外部类里的成员变量m=" + LocalOuter.this.m);
            }


        }
        return new LocalInner();
    }



}
